package creacionales.builder;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

import org.junit.Test;

/**
 * @author Julio Alejandro Larosa 
 * Fuente: Patrones de diseño Gamma GOF.
 * Proposito: Simplificar la construccion de un objeto de su
 * representacion de forma que el mismo proceso de construccion pueda
 * crear diferentes representaciones.
 * 
 * Aplicabilidad: 1- El algoritmo para crear un objeto complejo deberia
 * ser independiente de las partes que se compone dicho objeto y de como
 * se ensamblan. 2- El proceso de construccion debe permitir diferentes
 * representaciones del objeto que esta siendo construido.
 * 
 * 
 */
public class TestBuilder {

	@Test
	public void test() {
		//cocina es el director
		Cocina cocina = new Cocina();
		//instanciamos los builder
        PizzaBuilder hawaiPizzabuilder = new HawaiPizzaBuilder();
        PizzaBuilder picantePizzaBuilder = new PicantePizzaBuilder();
 
        cocina.setPizzaBuilder( hawaiPizzabuilder );
        cocina.construirPizza();
 
        Pizza pizzaHawai = cocina.getPizza();
        System.out.println(pizzaHawai);
        
        cocina.setPizzaBuilder(picantePizzaBuilder);
        cocina.construirPizza();
        Pizza pizzaPicante = cocina.getPizza();
        System.out.println(pizzaPicante);
        
        
	}

}

